//实现双色球系统
//夏梓豪
//2023/04/04

package Code7;

import java.util.Random;
import java.util.Scanner;

public class test1 {
    public static void main(String[] args) {
    //1,生成中奖号码
        int[] arr = createNumber();

        System.out.println("++++++++++++++++++++++++++++++");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]+" ");
        }
        System.out.println("\n++++++++++++++++++++++++++++++");

    //2，用户输入彩票号码（红球加上蓝球）
    int[] userInputArr = userInputNumber();

    //3，判断用户的中奖情况
        //红球
        int redCount = 0;
        //蓝球
        int blueCount = 0;

        //判断红球
        for (int i = 0; i < userInputArr.length-1; i++) {
            int redNumber = userInputArr[i];
            for (int j = 0; j < arr.length-1; j++) {
                if (redNumber == arr[j]){
                    redCount++;
                    //如果找到了，那么后面的数字就没有必要继续比较了
                    //跳出内循环，继续判断下一个红球号码是否中奖
                    break;
                }
            }
        }

        //判断蓝球
        int blueNumber = userInputArr[userInputArr.length-1];
        if (blueNumber == arr[arr.length-1]){
            blueCount++;
        }

//        System.out.println(redCount);
//        System.out.println(blueCount);

        //根据红球的个数以及蓝球的个数来判断中奖情况
        if (redCount == 6 && blueCount == 1){
            System.out.println("1000万");
        } else if (redCount == 6 && blueCount == 0) {
            System.out.println("500万");
        } else if (redCount == 5 && blueCount == 1) {
            System.out.println("3000元");
        } else if ((redCount == 5 && blueCount == 0) || (redCount == 4 && blueCount == 1)) {
            System.out.println("200元");
        } else if ((redCount == 4 && blueCount == 0) || (redCount == 3 && blueCount == 1)) {
            System.out.println("10元");
        }else if ((redCount == 2 && blueCount == 0) || (redCount == 1 && blueCount == 1)) {
            System.out.println("5元");
        }else{
            System.out.println("谢谢参与，感谢您为中国公益事业贡献一份力量！！");
        }
    }

    public static int[] userInputNumber() {
        //1，创建数组用于添加用户购买的彩票号码
        // 6个红球 1个蓝球 数组长度为7
        int[] arr = new int[7];

        //2，利用键盘录入用户购买的的号码
        Scanner sc = new Scanner(System.in);
        //让用户输入红球号码
        for (int i = 0; i < 6;) {
            System.out.println("请用户输入第"+(i+1)+"个红球号码");
            int redNumber = sc.nextInt();
            //redNumber 要求在1-33之间，唯一不重复
            if (redNumber >= 1 && redNumber <= 33){
                //判断唯一性
                boolean flag = contains(arr,redNumber);
                if (!flag){
                    //不存在，有效的，可以添加到数组中
                    arr[i] = redNumber;
                    i++;
                }else {
                    System.out.println("当前红球号码已经存在，请重新输入");
                }
            }else{
                System.out.println("您输入的数字超出范围，请重新输入");
            }
        }

        //让用户输入蓝球号码
        System.out.println("请输入蓝球号码：");
        //1-16
        while (true) {
            int blueNumber = sc.nextInt();
            if (blueNumber >= 1 && blueNumber <= 16){
                arr[arr.length-1] = blueNumber;
                break;
            }else {
                System.out.println("当前蓝球号码超出范围");
            }
        }
        return arr;
    }



    public static int[]  createNumber() {
        //1，构建数组用于添加中间号码
        //6个红球，1个蓝球。数组长度：7
        int[] arr = new int[7];

        //2，随机生成号码并添加到数组当中
        //红球：不能重复的 1 2 3 4 5 6
        //篮球：可以跟红球号码重复 5

        //生成红球号码并添加到数组之中
        Random r = new Random();
        for (int i = 0; i < 6; ) {
            //获取红球号码
            int redNumber = r.nextInt(33)+1;
            boolean flag = contains(arr,redNumber);
            if (!flag){
                //把红球的号码添加到数组当中
                arr[i] =redNumber;
                i++;
            }
        }
        //生成蓝球的号码添加到数组当中
        int blueNumber = r.nextInt(16)+1;
        arr[arr.length-1] = blueNumber;

        return arr;
    }


    //判断数字在数组中是否存在
    public static boolean contains(int[] arr,int number) {
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] == number){
                return true;
            }
        }
        return false;
    }
}
